#ifndef CONSOLE_MESSAGE_HPP
#define CONSOLE_MESSAGE_HPP

#include "common.hpp"
namespace wolf
{
class ConsoleApp;
/**
 * @brief A simple class used to transmit information between the console and the console application
 * @ingroup consoleMod
 *
 *
 * This classes can be extended to add more information or the extra information can be passed by data
 *  parameter.
 **/
class ConsoleMessage
{
public:
	/**
	 * @brief Creates a Console Message
	 *
	 *
	 **/
	ConsoleMessage(Uint32 type_ = 0, void *data_ = NULL)
	{
		type = type_;
		data = data_;
	}

	/**
	 * @brief Gets The message type
	 *
	 *
	 **/
	Uint32 getType(void)
	{
		return type;
	}

	/**
	 * @brief Sets the message Type
	 *
	 *
	 **/
	void setType(Uint32 val)
	{
		type = val;
	}

	/**
	 * @brief Gets the data
	 *
	 *
	 **/
	void *getData(void)
	{
		return data;
	}

	/**
	 * @brief Sets the data
	 *
	 *
	 **/
	void setData(void *val)
	{
		data = val;
	}
private:
	Uint32 type;
	void *data;
};
}

#endif // CONSOLE_MESSAGE_HPP
